﻿#region librerias
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
#region librerias mías
using Librerias;
using System.IO;
using System.Collections;
using System.Text.RegularExpressions;
#endregion
#endregion

namespace eCampus
{
    /// <summary>
    /// Formulario para crear usuario
    /// </summary>
    public partial class FormUsuarioCrear : Form
    {
        #region variables
        //FormBusquedaAvanzada fBusCav;
        ArrayList listaDepartamentos;
        ENDepartamento departamentos;
        ENUsuario datos = new ENUsuario();
        bool esModificar;
         
        int modoAcceso=0;

        /// <summary>
        /// Guardará el directorio
        /// </summary>
        string miDirectorio = @"c:\ecampusTemp\";
        #endregion
        
        #region constructores
        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public FormUsuarioCrear()
        {
            InitializeComponent();
          
            CargaDepartamento();
            esModificar = false;
        }

    /// <summary>
    /// Constructor parametrizado. Me sirve para modificar
    /// </summary>
    /// <param name="usu">Usuario</param>
    /// <param name="modoAccesoNuevo">variable para indicar si modifica o crea</param>
        public FormUsuarioCrear(ENUsuario usu, int modoAccesoNuevo)
        {
                      
            esModificar = true;
            modoAcceso = modoAccesoNuevo;
           
            InitializeComponent();
            CargaDepartamento();
            datos = usu;
           
           
        }

        #endregion
        
        #region Load
        /// <summary>
        /// Conforme se cargue el FormUsuarioCrear haremos diversas tareas
        /// </summary>
        /// <param name="sender">Este formulario</param>
        /// <param name="e">Evento Load</param>
        private void FormUsuarioCrear_Load(object sender, EventArgs e)
        {  
            tbUrl.Visible = false;
            if (modoAcceso == 1)//modificacion
            {
                pbImagen.Visible = true;
                btExaminar.Visible = false ;
                tbCorreo.Text = datos.Correo;
                tbCorreo.ReadOnly = true;
                tbContraseña.Text = datos.Contraseña;
                tbRepetir.Text = datos.Contraseña;
                tbNombre.Text = datos.Nombre;
                tbApellido1.Text = datos.Apellido1;
                tbApellido2.Text = datos.Apellido2;
               // tbUrl.Text = datos.Imagen
                #region Cargar Imagen
                ///traigo imagen: editable
                if (datos.Imagen!= "")
                {
                    lbPathImagen.Text = datos.Imagen;
                    tbUrl.Text = datos.Imagen;
                    //Me preparo el directorio

                    try
                    {
                        //Si esta lo borro y lo vuelvo a crear
                        if (Directory.Exists(miDirectorio) == true)
                        {
                            Directory.Delete(miDirectorio, true);
                            Directory.CreateDirectory(miDirectorio);
                        }
                        else
                        {
                            Directory.CreateDirectory(miDirectorio);
                        }

                        ///Bajo imagen desde Dropbox
                        datos.DescargarImagen(datos.Correo, miDirectorio);

                        ///extracto nombre de la imagen 
                        string[] words = lbPathImagen.Text.Split('/');
                        foreach (string word in words)
                        {
                            cbFicheroDropbox.Items.Add(word);
                        }
                        int numero = cbFicheroDropbox.Items.Count;

                        ///la coloco en el picturebox adecuado
                        string rutaFichero = miDirectorio + (cbFicheroDropbox.Items[numero - 1]).ToString();

                        ///la cargo en el pictureBox
                        FileStream ms;
                        ms = new FileStream(rutaFichero, FileMode.Open, FileAccess.Read);
                        pbImagen.Image = Image.FromStream(ms);
                        ms.Close();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("No se han podido cargar los datos del Usuario ", "Problema");
                    }
                }
                #endregion
                tbTelefono.Text = datos.Telefono;
                tbCorreoAlt.Text = datos.CorreoAlternativo;
                btAlta.Visible = false;                 
                
                if (datos.Tipo == 0)//ADMIN
                {
                    rbAdmin.Checked = true;
                    labeldepartamento.Visible = false;
                    cbDepartamento.Visible = false;
                }
                else
                    if (datos.Tipo == 1)//profe
                    {
                        rbProfesor.Checked = true;
                        cbDepartamento.SelectedItem = datos.Departamento;

                    }
                    else
                        if (datos.Tipo == 2)//estudiante
                        {
                            rbEstudiante.Checked = true;
                            labeldepartamento.Visible = false;
                            cbDepartamento.Visible = false;

                        }

            }
            else
            if(modoAcceso==0)//crear
            {
                pbImagen.Visible = false;
                btExaminar.Visible = false;
                tbCorreo.Text = datos.Correo;
                tbContraseña.Text = datos.Contraseña;
                tbNombre.Text = datos.Nombre;
                tbApellido1.Text = datos.Apellido1;
                tbApellido2.Text = datos.Apellido2;
                //cbDepartamento.Text = datos.Departamento;
                tbUrl.Text = datos.Imagen;
                tbTelefono.Text = datos.Telefono;
                tbCorreoAlt.Text = datos.CorreoAlternativo;
                btModificar.Visible = false;
                btMatricular.Visible = false;
                // btAlta.Text = "Actualizar";
                rbAdmin.Checked = false;
                rbAdmin.Checked = false;
                rbProfesor.Checked = false;
           
            }
                 
                          
                   
        }

        #endregion
        
        #region CargaDepartamento
        /// <summary>
        /// Cargamos departamento de la base de datos al combobox
        /// </summary>
  
        private void CargaDepartamento()
        {

            CADDepartamento dep = new CADDepartamento();

            try
            {
                listaDepartamentos = dep.ConsultaDepartamento();

                if (listaDepartamentos.Count == 0)
                {
                    throw new Exception("Error. No hay departamentos.");
                }

                cbDepartamento.Items.Clear();
                cbDepartamento.Items.Add("Seleccione un departamento");
                foreach (ENDepartamento asi in listaDepartamentos)
                {
                    cbDepartamento.Items.Add(asi.Codigo);
                }
                cbDepartamento.SelectedIndex = 0;
                departamentos = (ENDepartamento)listaDepartamentos[0];
            }
            catch (Exception e)
            {
                MessageBox.Show(e.StackTrace + "\r\n" + e.Message);
            }
        }

        #endregion

        #region efectos visuales del interfaz
        private void tbNombre_Enter(object sender, EventArgs e)
        {
            tbNombre.BackColor = Color.LightGoldenrodYellow;
        }

        //al salir de tbNombre
        private void tbNombre_Leave(object sender, EventArgs e)
        {
            tbNombre.BackColor = Color.White;
        }


        //al entrar en tbTelefono
        private void tbTelefono_Enter(object sender, EventArgs e)
        {
            tbTelefono.BackColor = Color.LightGoldenrodYellow;
        }

        //al salir de tbTelefono
        private void tbTelefono_Leave(object sender, EventArgs e)
        {
            tbTelefono.BackColor = Color.White;
        }



        //al entrar en tbCorreo
        private void tbCorreo_Enter(object sender, EventArgs e)
        {
            tbCorreo.BackColor = Color.LightGoldenrodYellow;
        }

        //al salir de tbCorreo
        private void tbCorreo_Leave(object sender, EventArgs e)
        {
            tbCorreo.BackColor = Color.White;
        }


        //al entrar en tbApellido2
        private void tbApellido2_Enter(object sender, EventArgs e)
        {
            tbApellido2.BackColor = Color.LightGoldenrodYellow;
        }

        //al salir de tbApellido2
        private void tbApellido2_Leave(object sender, EventArgs e)
        {
            tbApellido2.BackColor = Color.White;
        }

        //al entrar en tbApellido1
        private void tbApellido1_Enter(object sender, EventArgs e)
        {
            tbApellido1.BackColor = Color.LightGoldenrodYellow;
        }

        //al salir de tbApellido1
        private void tbApellido1_Leave(object sender, EventArgs e)
        {
            tbApellido1.BackColor = Color.White;
        }
        #endregion

        #region AltaUsuario
        /// <summary>
        /// Tramitará el alta de un nuevo usuario2 en el sistema
        /// </summary>
        /// <param name="sender">Botón Alta</param>
        /// <param name="e">Evento Click</param>
        private void btAlta_Click(object sender, EventArgs e)
        {
            //limpio los errores
            errorProviderApellido1.Clear();
            errorProviderCorreo.Clear();
            errorProviderDepartamento.Clear();
            errorProviderNombre.Clear();
            errorProviderContraseña.Clear();
            errorProviderCorreoAlt.Clear();
            errorProviderTelefono.Clear();
            errorProviderRepetir.Clear();
            
            //en ppio no habrá error
            bool error = false;

            //reservo memoria para un usuario2 para si al final damos de alta uno nuevo  
            ENUsuario s = new ENUsuario();

            //creamos
            if (!esModificar)
            {
                try
                {
                    if (rbAdmin.Checked == false && rbProfesor.Checked == false && rbEstudiante.Checked == false)
                    {
                        MessageBox.Show("Indica tipo usuario", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        //Vigilo que nombre bien------------------------------------------------
                        //controlo que no dejen vacío el nombre
                        if (tbNombre.Text == "")
                        {
                            errorProviderNombre.SetError(tbNombre, "No puede estar vacío");
                            error = true;
                        }
                        //controlo que el nombre sólo sean letras 
                        else
                        {
                            if (!s.ValidarStrings(tbNombre.Text.ToString()))
                            {
                                errorProviderNombre.SetError(tbNombre, "Sólo pueden ser letras");
                                error = true;
                            }
                        }

                        //Vigilo que apellido 1 bien------------------------------------------------
                        //1º que no sea vacío
                        if (tbApellido1.Text == "")
                        {
                            errorProviderApellido1.SetError(tbApellido1, "No puede estar vacío");
                            error = true;
                        }
                        //2º que sólo sean letras
                        else
                        {
                            if (!s.ValidarStrings(tbApellido1.Text.ToString()))
                            {
                                errorProviderApellido1.SetError(tbApellido1, "Sólo pueden ser letras");
                                error = true;
                            }
                        }

                        //Vigilo que correo-e bien-----------------------------------------------  
                        //1º que no esté vacío
                        if (tbCorreo.Text == "")
                        {
                            errorProviderCorreo.SetError(tbCorreo, "No puede estar vacío");
                            error = true;
                        }
                        //2º que sea un correo-e válido
                        else
                        {
                            if (!s.ValidarEmail(tbCorreo.Text.ToString()))
                            {
                                errorProviderCorreo.SetError(tbCorreo, "Ejemplo: aaaaaa@aa.aa");
                                error = true;
                            }
                        }

                        //Vigilo clave
                        //1º que no sea vacía
                        if (tbContraseña.Text == "")
                        {
                            errorProviderContraseña.SetError(tbContraseña, "No puede estar vacía");
                            error = true;
                        }
                        //2º que sólo tenga dígitos y letras
                        else
                        {
                            if (!s.ValidarClave(tbContraseña.Text.ToString()))
                            {
                                errorProviderContraseña.SetError(tbContraseña, "Sólo dígitos y letras");
                                error = true;
                            }
                        }
                        if (tbRepetir.Text == "")
                        {
                            errorProviderContraseña.SetError(tbRepetir, "Repite la contraseña");
                            error = true;

                        }
                        else
                        {

                            if (tbContraseña.Text != tbRepetir.Text)
                            {
                                errorProviderRepetir.SetError(tbRepetir, "La contraseña no coincide");
                                error = true;
                            }
                        }

                        //Vigilamos que teléfono bien
                        //1º que no sea vacío
                        if (tbTelefono.Text == "")
                        {
                            errorProviderTelefono.SetError(tbTelefono, "No puede ser vacio");
                            error = true;
                        }
                        else
                        {
                            if (!s.ValidarTelefono(tbTelefono.Text.ToString()))
                            {
                                errorProviderTelefono.SetError(tbTelefono, "9 digitos.Ejemplo: 612345678 o 912345678");
                                error = true;
                            }
                        }


                        //Vigilamos correo-alternativo 
                        //1º que no sea vacío
                        if (tbCorreoAlt.Text != "")
                        {
                            //2º que sea un correo-e válido
                            if (!s.ValidarEmail(tbCorreoAlt.Text.ToString()))
                            {
                                errorProviderCorreoAlt.SetError(tbCorreoAlt, "Ejemplo: aaaaaa@aa.aa");
                                error = true;
                            }
                        }

                        //Si es profesor al que hay que dar de alta------------
                        if (rbProfesor.Checked == true)
                        {
                            //si quiero dar de alta un profesor controlo que haya elegido un depto
                            if (cbDepartamento.SelectedIndex.Equals(0))
                            {
                                errorProviderDepartamento.SetError(cbDepartamento, "Seleccione departamento");
                                error = true;
                            }
                            //¡ojo! si al final todo bien lo creo    
                            else
                                s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, cbDepartamento.Text, tbUrl.Text, 1, tbTelefono.Text, tbCorreoAlt.Text);
                        }

                        //Si es admin al que hay que dar de alta---------------  
                        else
                        {
                            if (rbAdmin.Checked == true)

                                s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, "dadmin", tbUrl.Text, 0, tbTelefono.Text, tbCorreoAlt.Text);

                            //Si es un estudiante al que hay que dar de alta
                            else
                            {
                                if (rbEstudiante.Checked == true)
                                    s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, "dalum", tbUrl.Text, 2, tbTelefono.Text, tbCorreoAlt.Text);
                            }
                        }

                        if (error == false)
                        {
                            if (s.BuscarCorreo(tbCorreo.Text))
                            {
                                MessageBox.Show("El usuario ya existe", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                LimpiarCampos();
                                errorProviderApellido1.Clear();
                                errorProviderCorreo.Clear();
                                errorProviderDepartamento.Clear();
                                errorProviderNombre.Clear();
                                errorProviderContraseña.Clear();
                                errorProviderCorreoAlt.Clear();
                                errorProviderRepetir.Clear();

                            }
                            else
                            {

                                s.CrearUsuario();


                                MessageBox.Show("Usuario añadido correctamente", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            LimpiarCampos();
                           
                            Close();




                        }

                    }

                }
                catch (FormatException ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }

            }
            else //modificamos=true
            {

                try
                {
                    if (tbNombre.Text == "")
                    {
                        errorProviderNombre.SetError(tbNombre, "No puede estar vacio");
                        error = true;
                    }
                    if (tbApellido1.Text == "")
                    {
                        errorProviderApellido1.SetError(tbApellido1, "No puede estar vacio");
                        error = true;
                    }
                    if (tbCorreo.Text == "")
                    {
                        errorProviderCorreo.SetError(tbCorreo, "No puede estar vacio");
                        error = true;
                    }
                    else
                    {
                        if (!s.ValidarEmail(tbCorreo.Text.ToString()))
                        {
                            errorProviderCorreo.SetError(tbCorreo, "Ejemplo: aaaaaa@aa.aa");
                            error = true;
                        }
                    }


                    if (tbCorreoAlt.Text != "")
                    {
                        if (!s.ValidarEmail(tbCorreoAlt.Text.ToString()))
                        {
                            errorProviderCorreoAlt.SetError(tbCorreoAlt, "Ejemplo: aaaaaa@aa.aa");
                            error = true;
                        }
                    }

                    if (rbProfesor.Checked == true)
                    {
                        if (cbDepartamento.SelectedIndex.Equals(0))
                        {
                            errorProviderDepartamento.SetError(cbDepartamento, "Seleccione departamento");
                            error = true;
                        }
                        else
                            s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, cbDepartamento.Text, tbUrl.Text, 1, tbTelefono.Text, tbCorreoAlt.Text);

                    }
                    else
                    {
                        if (rbAdmin.Checked == true)
                            s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, "dadmi", tbUrl.Text, 0, tbTelefono.Text, tbCorreoAlt.Text);
                        else
                        {
                            if (rbEstudiante.Checked == true)
                                s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, "dalum", tbUrl.Text, 2, tbTelefono.Text, tbCorreoAlt.Text);

                        }

                    }

                    if (error == false)
                    {

                        if (rbAdmin.Checked == true || rbEstudiante.Checked == true)
                        {
                            
                                s.ModificarUsuarioAdminEstu();
                                
                        }
                        else
                            {
                                s.ModificarUsuario();
                            }
                        MessageBox.Show("Usuario modificado correctamente", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        LimpiarCampos();

                    }


                }
                catch (FormatException ex)
                {
                    MessageBox.Show(ex.Message.ToString());

                }
            }

        }

        #endregion

        #region LimpiarCampos
        /// <summary>
    /// Limpiamos los datos del formulario y los erroresProvider
    /// </summary>

        private void LimpiarCampos()
        {
            tbNombre.Text = string.Empty;
            tbApellido1.Text = string.Empty;
            tbApellido2.Text = string.Empty;
            tbCorreo.Text = string.Empty;
            tbCorreoAlt.Text = string.Empty;
            tbContraseña.Text = string.Empty;
            tbTelefono.Text = string.Empty;
            tbUrl.Text = string.Empty;
            tbRepetir.Text = string.Empty;
            cbDepartamento.SelectedItem = null;
            rbAdmin.Checked = false;
            rbEstudiante.Checked = false;
            rbProfesor.Checked = false;
            if (pbImagen.Image != null)
            {
                pbImagen.Image.Dispose();
                pbImagen.Image = null;
            }
            errorProviderApellido1.Clear();
            errorProviderCorreo.Clear();
            errorProviderDepartamento.Clear();
            errorProviderNombre.Clear();
            errorProviderContraseña.Clear();
            errorProviderCorreoAlt.Clear();
            errorProviderTelefono.Clear();
            errorProviderRepetir.Clear();

        }
        #endregion

        #region Modificar
        /// <summary>
/// Evento asociado al boton para modificar los datos del formulario
/// </summary>
/// <param name="sender">boton modificar</param>
/// <param name="e">evento click</param>
        private void btModificar_Click(object sender, EventArgs e)
        {
             bool error = false;
            ENUsuario s = new ENUsuario();
            try
            {
                if (tbNombre.Text == "")
                {
                    errorProviderNombre.SetError(tbNombre, "No puede estar vacio");
                    error = true;
                }
                if (tbApellido1.Text == "")
                {
                    errorProviderApellido1.SetError(tbApellido1, "No puede estar vacio");
                    error = true;
                }
                if (tbCorreo.Text == "")
                {
                    errorProviderCorreo.SetError(tbCorreo, "No puede estar vacio");
                    error = true;
                }
                else
                {
                    if (!s.ValidarEmail(tbCorreo.Text.ToString()))
                    {
                        errorProviderCorreo.SetError(tbCorreo, "Ejemplo: aaaaaa@aa.aa");
                        error = true;
                    }
                }

                if (tbContraseña.Text == "")
                {
                    errorProviderContraseña.SetError(tbContraseña, "No puede estar vacio");
                    error = true;
                }
                if (tbTelefono.Text != "")
                {
                    if (!s.ValidarTelefono(tbTelefono.Text.ToString()))
                    {
                        errorProviderTelefono.SetError(tbTelefono, "9 digitos.Ejemplo: 612345678 o 912345678");
                        error = true;
                    }
                }
                if (tbCorreoAlt.Text != "")
                {
                    if (!s.ValidarEmail(tbCorreoAlt.Text.ToString()))
                    {
                        errorProviderCorreoAlt.SetError(tbCorreoAlt, "Ejemplo: aaaaaa@aa.aa");
                        error = true;
                    }
                }

                if (rbProfesor.Checked == true)
                {
                    if (cbDepartamento.SelectedIndex.Equals(0))
                    {
                        errorProviderDepartamento.SetError(cbDepartamento, "Seleccione departamento");
                        error = true;
                    }
                    else
                        s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, cbDepartamento.Text, tbUrl.Text, 1, tbTelefono.Text, tbCorreoAlt.Text);

                }
                else
                {
                    if (rbAdmin.Checked == true)
                        s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, "dadmi", tbUrl.Text, 0, tbTelefono.Text, tbCorreoAlt.Text);
                    else
                    {
                        if (rbEstudiante.Checked == true)
                            s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, "dalum", tbUrl.Text, 2, tbTelefono.Text, tbCorreoAlt.Text);

                    }

                }

                if (error == false)
                {

                    if (rbAdmin.Checked == true || rbEstudiante.Checked == true)
                    {

                        s.ModificarUsuarioAdminEstu();
                    }
                    else
                    
                        s.ModificarUsuario();

                        MessageBox.Show("Usuario modificado correctamente", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    
                    LimpiarCampos();


                }


            }
            catch (FormatException ex)
            {
                MessageBox.Show(ex.Message.ToString());

            }

            Close();
        }

        #endregion

        #region Matricular
        /// <summary>
        /// Evento asociado al boton matricular
        /// </summary>
        /// <param name="sender">boton matricular</param>
        /// <param name="e">evento click</param>
        private void btMatricular_Click(object sender, EventArgs e)
        {
            {
                {
                    bool error = false;
                    ENUsuario s = new ENUsuario();
                    try
                    {
                        if (tbNombre.Text == "")
                        {
                            errorProviderNombre.SetError(tbNombre, "No puede estar vacio");
                            error = true;
                        }
                        if (tbApellido1.Text == "")
                        {
                            errorProviderApellido1.SetError(tbApellido1, "No puede estar vacio");
                            error = true;
                        }
                        if (tbCorreo.Text == "")
                        {
                            errorProviderCorreo.SetError(tbCorreo, "No puede estar vacio");
                            error = true;
                        }
                        else
                        {
                            if (!s.ValidarEmail(tbCorreo.Text.ToString()))
                            {
                                errorProviderCorreo.SetError(tbCorreo, "Ejemplo: aaaaaa@aa.aa");
                                error = true;
                            }
                        }

                        if (tbContraseña.Text == "")
                        {
                            errorProviderContraseña.SetError(tbContraseña, "No puede estar vacio");
                            error = true;
                        }
                        if (tbTelefono.Text != "")
                        {
                            if (!s.ValidarTelefono(tbTelefono.Text.ToString()))
                            {
                                errorProviderTelefono.SetError(tbTelefono, "9 digitos.Ejemplo: 612345678 o 912345678");
                                error = true;
                            }
                        }
                        if (tbCorreoAlt.Text != "")
                        {
                            if (!s.ValidarEmail(tbCorreoAlt.Text.ToString()))
                            {
                                errorProviderCorreoAlt.SetError(tbCorreoAlt, "Ejemplo: aaaaaa@aa.aa");
                                error = true;
                            }
                        }

                        if (rbProfesor.Checked == true)
                        {
                            if (cbDepartamento.SelectedIndex.Equals(0))
                            {
                                errorProviderDepartamento.SetError(cbDepartamento, "Seleccione departamento");
                                error = true;
                            }
                            else
                                s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, cbDepartamento.Text, tbUrl.Text, 1, tbTelefono.Text, tbCorreoAlt.Text);

                        }
                        else
                        {
                            if (rbAdmin.Checked == true)
                                s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, "dadmi", tbUrl.Text, 0, tbTelefono.Text, tbCorreoAlt.Text);
                            else
                            {
                                if (rbEstudiante.Checked == true)
                                    s = new ENUsuario(tbCorreo.Text, tbContraseña.Text, tbNombre.Text, tbApellido1.Text, tbApellido2.Text, "dalum", tbUrl.Text, 2, tbTelefono.Text, tbCorreoAlt.Text);

                            }

                        }

                        if (error == false)
                        {
                            if (rbEstudiante.Checked == true)
                            {
                                FormMatricular matricular = new FormMatricular(s);
                                matricular.ShowDialog();
                            }

                            else
                            {
                                if (rbProfesor.Checked == true)
                                {
                                    FormAsignarTurnos asignarTurnos = new FormAsignarTurnos(s);
                                    asignarTurnos.ShowDialog();

                                }
                            }
                        }
                    }

                    catch (FormatException ex)
                    {
                        MessageBox.Show(ex.Message.ToString());

                    }

                    Close();
                }
            }
        }
        #endregion

        #region funciones auxiliares

        /// <summary>
        /// Evento asociado al combobox
        /// </summary>
        /// <param name="sender">objeto combo</param>
        /// <param name="e">evento</param>
        private void cbDepartamento_SelectedIndexChanged(object sender, EventArgs e)
        {
            ENDepartamento dep = new ENDepartamento();

        }

      
        /// <summary>
        /// Evento asociado al botón q limpia los campos del formulario
        /// </summary>
        /// <param name="sender">botón asociado</param>
        /// <param name="e">evento click</param>
        private void btLimpiarCampos_Click(object sender, EventArgs e)
        {
            LimpiarCampos();
        }
        /// <summary>
        /// Evento asociado al botón para salir de la aplicación
        /// </summary>
        /// <param name="sender">boton</param>
        /// <param name="e">evento click</param>
        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

          /// <summary>
        /// Evento asociado al botón para salir del formulario
        /// </summary>
        /// <param name="sender">boton</param>
        /// <param name="e">evento click</param>
        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }

       
        /// <summary>
        /// Conforme elijamos BotónDeRádio rbEstudiante transformaremos el formulario
        /// </summary>
        /// <param name="sender">rbEstudiante</param>
        /// <param name="e">CheckedChanged</param>
        private void rbEstudiante_CheckedChanged_1(object sender, EventArgs e)
        {
            if (rbEstudiante.Checked == true)
            {
                labeldepartamento.Visible = false;
                cbDepartamento.Visible = false;
            }
        }
       
        /// <summary>
        /// Cuando elegimos administrador transformamos el form
        /// </summary>
        /// <param name="sender">rbEstudiante</param>
        /// <param name="e">CheckedChanged</param>
        private void rbAdmin_CheckedChanged(object sender, EventArgs e)
        {
            if (rbAdmin.Checked == true)
            {
                btMatricular.Visible = false;
                cbDepartamento.Visible = false;
                labeldepartamento.Visible = false;
                // pAsignaturas.BackColor = SystemColors.Control;
                //pAsignaturas.Enabled = false;
            }
        }
        /// <summary>
        /// Conforme pinchemos en BotónDeRadio Profesor -> transformaremos formulario aparece departamentp
        /// </summary>
        /// <param name="sender">rbProfesor</param>
        /// <param name="e">CheckedChanged</param>
        private void rbProfesor_CheckedChanged_1(object sender, EventArgs e)
        {
            if (rbProfesor.Checked == true)
            {
                cbDepartamento.Visible = true;
                labeldepartamento.Visible = true;
            }
            else
            {
                cbDepartamento.Visible = true;
                labeldepartamento.Visible = true;

            }
        }
        #endregion

    }
}

